package com.zenithmind.version.pojo.dto;

import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotBlank;
import lombok.Data;

/**
 * 分支创建DTO
 * 
 * @author ZenithMind Team
 * @since 2025-01-09
 */
@Data
@Schema(description = "分支创建DTO")
public class BranchCreateDTO {

    /**
     * 仓库ID
     */
    @NotBlank(message = "仓库ID不能为空")
    @Schema(description = "仓库ID")
    private String repositoryId;

    /**
     * 分支名称
     */
    @NotBlank(message = "分支名称不能为空")
    @Schema(description = "分支名称")
    private String branchName;

    /**
     * 分支描述
     */
    @Schema(description = "分支描述")
    private String description;

    /**
     * 源分支ID
     */
    @Schema(description = "源分支ID")
    private String sourceBranchId;

    /**
     * 源分支名称
     */
    @Schema(description = "源分支名称")
    private String sourceBranchName;

    /**
     * 源提交ID
     */
    @Schema(description = "源提交ID")
    private String sourceCommitId;

    /**
     * 是否为默认分支
     */
    @Schema(description = "是否为默认分支")
    private Boolean isDefault;

    /**
     * 是否为保护分支
     */
    @Schema(description = "是否为保护分支")
    private Boolean isProtected;

    /**
     * 状态
     */
    @Schema(description = "状态")
    private Integer status;
}
